using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;

namespace Thinxoft.HttpLib
{
	/// <summary>
	/// Represents the request sent by the client application
	/// </summary>
	public interface IHttpRequest
	{
		 

		
		/// <summary>
		/// retruns the method of the request.  Xedus will only support GET and POST at this time
		/// </summary>
		string Method
		{
			get
				;
		}
		

		/// <summary>
		/// Returns a reference to the IHttpResource which encapsulates the requested resource
		/// </summary>
		IHttpResource RequestResource
		{
			get
				;
		}
		

		/// <summary>
		/// returns the HTTP version used to make the request
		/// </summary>
		string HTTPVersion
		{
			get
				;
		}
		

		/// <summary>
		/// returns the content length
		/// </summary>
		int ContentLength
		{
			get
				;
		}
		

		/// <summary>
		/// returns a NameValueCollection for POST request parameters
		/// </summary>
        NameValueCollection Form
        {
			get
				;
			
		}

		/// <summary>
		/// returns a NameValueCollection of GET request parameters
		/// </summary>
        NameValueCollection QueryString
        {
			get
				;
			
		}

		/// <summary>
		/// returns a reference to an object that represents the collection of cookies 
		/// </summary>
		IHttpCookies  RequestCookies
		{
			get
				;
			
		}
		

		/// <summary>
		/// gets the parameter value associated  with the given name
		/// </summary>
		string this[string name]
		{
			get
			
				;
			
		}
	}
}
